package cn.supermaster.management.finance.mapper;

import cn.supermaster.management.finance.domain.FinanceAccount;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * All rights Reserved, Designed By www.super-master.cn
 *
 * @ProjectName: supermaster-management
 * @Package: cn.supermaster.management.finance.mapper
 * @ClassName: FinanceAccountMapper
 * @Description: []
 * <p> </p>
 * @Author: [Lance Ting]
 * @Date: 2021/2/21 20:06
 * @Version: V1.0
 * @Copyright: 2021 www.super-master.cn Inc. All rights reserved.
 * TODO: 注意,本文件Lance Ting所作,如果转载或使用请标明具体出处!
 **/
@Mapper
public interface FinanceAccountMapper {
    /**
     * @Description: [新增，插入所有字段]
     * <p></P>
     * @Title: insertFinanceAccount
     * @Author: Lance Ting
     * @Date: 2021-02-21
     * @Param: account 新增的记录
     * @Return: int 返回影响行数
     */
    int insertFinanceAccount(FinanceAccount account);

    /**
     * @Description: [新增，忽略null字段]
     * <p></P>
     * @Title: insertFinanceAccountSelective
     * @Author: Lance Ting
     * @Date: 2021-02-21
     * @Param: account 新增的记录
     * @Return: int 返回影响行数
     */
    int insertFinanceAccountSelective(FinanceAccount account);

    /**
     * @Description: [删除记录（物理删除）]
     * <p></P>
     * @Title: delete
     * @Author: Lance Ting
     * @Date: 2021-02-21
     * @Param: accountId 待删除的记录id
     * @Return: int 返回影响行数
     */
    int delete(Long accountId);

    /**
     * @Description: [删除记录（逻辑删除）]
     * <p>修改status状态=0</P>
     * @Title: deleteFinanceAccount
     * @Author: Lance Ting
     * @Date: 2021-02-21
     * @Param: accountId 待删除的记录id
     * @Return: int 返回影响行数
     */
    int deleteFinanceAccount(Long accountId);

    /**
     * @Description: [修改，修改所有字段]
     * <p>修改status状态=0</P>
     * @Title: updateFinanceAccount
     * @Author: Lance Ting
     * @Date: 2021-02-21
     * @Param: account 修改记录
     * @Return: int 返回影响行数
     */
    int updateFinanceAccount(FinanceAccount account);

    /**
     * @Description: [修改，忽略null字段]
     * <p></P>
     * @Title: updateFinanceAccountSelective
     * @Author: Lance Ting
     * @Date: 2021-02-21
     * @Param: account 修改记录
     * @Return: int 返回影响行数
     */
    int updateFinanceAccountSelective(FinanceAccount account);

    /**
     * @Description: [根据主键查询]
     * <p></P>
     * @Title: selectFinanceAccountByPrimaryKey
     * @Author: Lance Ting
     * @Date: 2021-02-21
     * @Param: accountId 主键
     * @Return: cn.supermaster.management.finance.domain.FinanceAccount 返回记录，没有返回null
     */
    FinanceAccount selectFinanceAccountByPrimaryKey(Long accountId);

    /**
     * @Description: [查询所有记录列表]
     * <p></P>
     * @Title: selectFinanceAccountList
     * @Author: Lance Ting
     * @Date: 2021-02-21
     * @Return: List<cn.supermaster.management.finance.domain.FinanceAccount> 返回记录，没有返回null
     */
    List<FinanceAccount> selectFinanceAccountList();

    /**
     * @Description: [根据主键查询]
     * <p></P>
     * @Title: selectFinanceAccountListByCondition
     * @Author: Lance Ting
     * @Date: 2021-02-21
     * @Param: account 主键
     * @Return: List<cn.supermaster.management.finance.domain.FinanceAccount> 返回记录，没有返回null
     */
    List<FinanceAccount> selectFinanceAccountListByCondition(FinanceAccount account);
}